#include <iostream>
#include <math.h>
using namespace std;

int lowbit(int x){
	return (x&-x);
}


void add(int n,int a,int k,int dp[]){
	for(int i=a;i<=n;i+=lowbit(i)){
		dp[i] += k;
	}
	return;
}


int ask(int a,int dp[]){
	int ans=0;
	for(int i=a;i>0;i-=lowbit(i)){
		ans += dp[i];
	}
	return ans;
}



int main(){
	int n,m;
	cin>>n>>m;
	int dp[n+1];
	for(int i=1;i<=n;i++){
		cin>>dp[i];
		int l=i-lowbit(i);
		for(int j=lowbit(i)-1;j>0;j-=lowbit(j)){
			dp[i] += dp[l+j];
		}
	}
	
	for(int i=0;i<m;i++){
//		for(int i=0;i<=n;i++){
//			cout<<dp[i]<<" ";
//		}
//		cout<<endl;
		int x,y,z;
		cin>>x>>y>>z;
		if(x == 1){
			add(n,y,z,dp);
		}
		else{
//			cout<<ask(x-1,dp)<<" ";
//			cout<<ask(y,dp)<<endl;
			if(y > z)
				cout<<(ask(y,dp)-ask(z-1,dp))<<endl;
			else
				cout<<(ask(z,dp)-ask(y-1,dp))<<endl;
		}
	}
	return 0;
} 
